Processes within an organization can be complex and incur a significant amount of resources and manpower to perform. For example, a recruiting process might involve creating a requisition, getting an approval, advertising the position on an external portal such as indeed.com, monster.com, sourcing potential candidates, performing interviews, selecting a candidate, sending out offers, receiving acceptances, etc. The candidates must be sourced and a filtering process applied to select the best candidate. After a candidate is selected, a process of onboarding the candidate as a new employee will typically be performed. Once an employee is onboard, there may be other various other administrative and management processes that are needed during the life cycle of the employee while he or she is working for the organization such as, for example, performance reviews, promotions, retirement, termination, and pension plans, etc.
Such process flows may be complex and involve a number of different activities and decisions that need to be made by multiple different individuals having different roles within an organization. In addition, these processes may also vary significantly from department to department, organization to organization, industry to industry, and/or country to country, etc. The retail industry, for example, may have a different hiring process based on the season, whereas the software industry may have a completely different process for sourcing and filtering candidates.
Conventionally, the way these processes are implemented in a computer system is through manually coding program code for each activity in the process. The various tasks associated with processes can be modified or updated manually by going into the code and finding the particular process and the particular configuration of that process to make any changes. This approach limits the process significantly and may require a significant effort making revisions as the process changes over time within an organization. In addition, what may work for one organization most likely will not work for another because they each have their own set of processes and need a mechanism to customize those processes according to their particular needs.
In the case of a new hire, for example, a web page may be programmatically coded to capture a requisition form and then the web page may make one or more service calls to various service modules involved in executing the process. Every time the process changes within the organization, however, individuals must manually go through and re-code the process, including revising any integration between any discrete processes involved. A number of different modules need to be integrated for every process, and then re-coded every time the process is changed. This can be a monumental task depending on the complexity of the processes involved.
As a result, there needs to be some mechanism by which the discrete processes involved in an organization can be controlled and managed by the organization.